package dao

import (
	"time"
)

// 这是 SearchTerms 的全局公开dao对象，被service层调用!
var SearchTermsDao = searchTermsDao{}

// 搜索词统计
// 这是 search_terms表 的实体类,这个实体类中的字段可以减少，但是不能在其基础上增加!
type SearchTerms struct {
	Id      int32     `json:"id" form:"id" db:"id" v:"id"`
	Keyword string    `json:"keyword" form:"keyword" db:"keyword" v:"keyword"` // 搜索词
	Times   int32     `json:"times" form:"times" db:"times" v:"times"`         // 次数
	Ctime   time.Time `json:"ctime" form:"ctime" db:"ctime" v:"ctime"`
}

// 注意:这是 SearchTerms 的私有dao对象，只能在dao层内使用!
type searchTermsDao struct {
	InsertTemplate func(arg SearchTerms) (int64, error)             //插入一条记录
	UpdateTemplate func(arg SearchTerms) (int64, error)             //更新一条记录
	DeleteTemplate func(id int64) (int64, error)                    `arg:"id"` //根据传入的主键删除一条记录
	SelectTemplate func(id int64) (SearchTerms, error)              `arg:"id"` //根据传入的主键获取一条记录
	List           func(arg SearchTermsList) ([]SearchTerms, error) //模糊分页查询
}

/*
// 这是 search_terms 表的Postman测试参数
// 该结构体中的字段就是: 前后端交互的json字段!
type SearchTermsPostman struct {
id
keyword
times
ctime

}*/

// 这是 search_terms 表的批量请求参数
type SearchTermsReq struct {
	List []SearchTerms `json:"list" form:"list"`
}

// 这是 searchTermsDao.List()方法的请求参数
type SearchTermsList struct {
	Page
}
